The present invention relates to a method of managing execution of a program in a distributed processing system having a plurality of processors and more particularly to a program execution management method capable of managing a start timing of a program in a processor in a system where the processor receives a message sent from another processor and then executes the program.
There is known a distributed processing system in which processors each having a processing Unit are connected through a communication line. In the distributed processing system, instructions, execution results or the like are sent out from a processor to a network as a message. The message is received by another processor and a processing unit in the processor which has received the message performs some processing by using the message. In the distributed processing system, heretofore, when a message is transmitted from a processor on the transmission side to a processor on the reception side and is received by the processor on the reception side, the message is immediately delivered to a processing unit (strictly speaking, a program executed by the processing unit) on the reception side and processing is performed in accordance with the program. For example, JP-A-57-146361 discloses a so-called data driven type program execution, management method in which a program in a processor is started when data necessary to execute the program are taken into the processor from a common transmission path and are all present in a distributed processing system having a plurality of processors connected to the common transmission path.
In such a prior art arrangement, the execution timing of a program on the reception side is the time that the message is received and when a network in which an arrival time of the message cannot be forecast is used, it is impossible to control the execution timing of the program.
On the other hand, there is a technique such that when the message is received by the processor on the reception side, the processor stores the message in a buffer memory once and delivers the information to a program when a request is issued from the program in the processor on the reception side. In this system, the message is delivered when requested by the program, while there is no method of controlling the execution timing of the program using the message positively.
The above prior art has a problem in that when the message is transmitted from the processor on the transmission side to the program in the processor on the reception side, the transmitted message is delivered to the program only when the message reaches the processor on the reception side or when the program on the reception side issues the reception request and accordingly it is impossible to deliver the message to the program on the reception side at an intended time of the program on the transmission side. Accordingly, when it is desirable to execute the program at the intended time, the program on the transmission side calculates a time required until the message reaches the program on the reception side and must transmit the message by the calculated time earlier than the time that the message is desired to be received. However, even in this method, the information does not necessarily reach the program on the reception side on the desired time exactly. Further, when a message is transmitted from one or a plurality of programs to a plurality of programs, the plurality of programs on the reception side cannot receive information at the same time and accordingly it is further impossible to successfully control delivery and receipt of a plurality of messages among a plurality of processors.
A method of starting a specified program at a specified time involves an "at" command used in UNIX (OS licensed exclusively by X/OPEN company) which is an operating system (OS) of a computer. The "at" command includes an argument to which a start time and a program name to be started are given and when the "at" command is inputted, the specified program is started on the start time specified in the argument. However, the "ad" command is the starting method of a program in a single processing unit and is different from that for specifying the start time of the program used in the message transmitted and received between the distributed processing units. Accordingly, the command is different from that relative to starting of the program on the reception side in the distributed processing unit.